import java.util.Scanner;

public class SwitchCaseStatementTest2 {
    public static void main(String[] args) {
        //需求：从键盘输入年、月、日，计算这一天是这一年的第几天
        //例如：2025-6-28，是这一年的第179
        //31 + 28 + 31 + 30 + 31 + 28

        Scanner input = new Scanner(System.in);

        System.out.print("请输入年：");
        int year = input.nextInt();

        System.out.print("请输入月：");
        int month = input.nextInt();

        System.out.print("请输入日：");
        int day = input.nextInt();

        /*
        （1）累加[1, month-1]的所有满月天数
        （2）加第month月的day天
        （3）考虑：如果是闰年，2月是29天
         */
        int days = 0;
        /*if(month==1){
            days += day;
        }else if(month==2){
            days += 31 + day;
        }else if(month == 3){
            days += 31 + 28 + day;
        }else if(month == 4){
            days += 31 + 28 + 31 +  day;
        }。。。
        //上面的写法，能实现，但是有点麻烦*/

        switch (month) {
            case 12:
                days += 30;//30是11月的满月天数
            case 11:
                days += 31;//31是10月的满月天数
            case 10:
                days += 30;//30是9月的满月天数
            case 9:
                days += 31;//31是8月的满月天数
            case 8:
                days += 31;//31是7月的满月天数
            case 7:
                days += 30;//30是6月的满月天数
            case 6:
                days += 31;//31是5月的满月天数
            case 5:
                days += 30;//30是4月的满月天数
            case 4:
                days += 31;//31是3月的满月天数
            case 3:
                days += year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? 29 : 28;//28或29是2月的满月天数
            case 2:
                days += 31;//31是1月的满月天数
            case 1:
                days += day;
        }
        System.out.println(year + "年" + month + "月" + day + "日是这一年的第" + days + "天");

        input.close();
    }
}
